package com.cpd.blog.manager.manager;

import com.cpd.blog.dto.Result;
import com.cpd.blog.entity.User;

import java.util.List;

/**
 * @Author: Copydown
 * @Date: 2022/05/07/13:28
 */
public interface UserManager {

    /**
     * 用户登陆后更新时间
     *
     * @param token token
     * @param user  user
     * @return User
     */
    User updateUserLogin(User user, String token);

    /**
     * 通过用户 id 计算文章总阅读量
     *
     * @param id id
     * @return Long
     */
    Long calViewCountsById(Long id);

    /**
     * 通过用户 id 计算发表的文章数
     *
     * @param id id
     * @return Long
     */
    Long countArticleById(Long id);

    /**
     * 通过名字 找出同名用户列表
     *
     * @param name name
     * @return List<User>
     */
    List<User> findUserListByNickName(String name);

    /**
     * 修改用户昵称
     * @param name name
     * @return Boolean
     */
    Boolean changeUserNickName(String name);

    /**
     * 修改用户密码
     * @param password password
     * @return Result
     */
    Result changePassword(String password);
}
